package com.ny.service;

import com.ny.domain.FitnessProductDO;
import com.ny.domain.ProductPurchaseDO;
import com.ny.dto.FitnessProductDTO;
import com.ny.dto.PurchaseRecordDTO;
import java.lang.Boolean;
import java.lang.Integer;
import java.util.List;

/**
 * 商品管理
 *
 * @author MSI-NB
 * @date 2025-03-08 13:14:38
 */
public interface ProductService {

    /**
     * 接口名称: 获取所有健身商品
     *
     * @return
     */
    List<FitnessProductDO> getAllFitnessProducts();

    /**
     * 接口名称: 获取指定ID健身商品
     *
     * @param productId
     * @return  健身商品的实体类
     */
    FitnessProductDO getFitnessProductById(Integer productId);

    /**
     * 接口名称: 新增健身商品
     *
     * @param fitnessProductDTO 健身商品的DTO
     * @return
     */
    Boolean addFitnessProduct(FitnessProductDTO fitnessProductDTO);

    /**
     * 接口名称: 更新健身商品
     *
     * @param fitnessProductDTO 健身商品的DTO
     * @return
     */
    Boolean updateFitnessProduct(FitnessProductDTO fitnessProductDTO);

    /**
     * 接口名称: 删除健身商品
     *
     * @param productId
     * @return
     */
    Boolean deleteFitnessProduct(Integer productId);

    /**
     * 接口名称: 获取会员所有购买记录
     *
     * @param memberId
     * @return
     */
    List<ProductPurchaseDO> getAllPurchaseRecordsByMemberId(Integer memberId);

    /**
     * 接口名称: 获取指定ID购买记录
     *
     * @param purchaseId
     * @return  购买记录的实体类
     */
    ProductPurchaseDO getPurchaseRecordById(Integer purchaseId);

    /**
     * 接口名称: 新增购买记录
     *
     * @param purchaseRecordDTO 购买记录的DTO
     * @return
     */
    Boolean addPurchaseRecord(PurchaseRecordDTO purchaseRecordDTO);

    /**
     * 接口名称: 更新购买记录
     *
     * @param purchaseRecordDTO 购买记录的DTO
     * @return
     */
    Boolean updatePurchaseRecord(PurchaseRecordDTO purchaseRecordDTO);

    /**
     * 接口名称: 删除购买记录
     *
     * @param purchaseId
     * @return
     */
    Boolean deletePurchaseRecord(Integer purchaseId);
}
